#接口类型：互亿无线触发短信接口，支持发送验证码短信、订单通知短信等。
#账户注册：请通过该地址开通账户http://sms.ihuyi.com/register.html
#注意事项：
#（1）调试期间，请用默认的模板进行测试，默认模板详见接口文档；
#（2）请使用APIID（查看APIID请登录用户中心->验证码短信->产品总览->APIID）及 APIkey来调用接口；
#（3）该代码仅供接入互亿无线短信接口参考使用，客户可根据实际需要自行编写；

#!/usr/local/bin/python
#-*- coding:utf-8 -*-
import requests
import logging
from tdesign_media_crawler_backend.local_settings import SMS_API_ID, SMS_API_KEY
host = "https://106.ihuyi.com"
sms_send_uri = "/webservice/sms.php?method=Submit"

# 用户名是登录用户中心->验证码短信->产品总览->APIID
account = SMS_API_ID
# 密码 查看密码请登录用户中心->验证码短信->产品总览->APIKEY
password = SMS_API_KEY


def send_sms_async(text, mobile):
    """
    异步发送短信验证码
    """
    params = {
        'account': account,
        'password': password,
        'content': text,
        'mobile': mobile,
        'format': 'json'
    }
    headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
    try:
        response = requests.post(host + sms_send_uri, data=params, timeout=30, headers=headers)
        response.raise_for_status()
        response_data = response.json()
        print(response_data)
        if response_data.get('code') != 2:
            logging.error(f"短信发送失败: {response_data.get('msg')}")
            raise Exception(f"短信发送失败: {response_data.get('msg')}")
        return response_data
    except requests.RequestException as e:
        logging.error(f"发送短信请求异常: {e}")
        raise Exception("发送短信请求异常")
